package com.shrcl.engineerprocess.domain;

import com.shrcl.engineerprocess.domain.Certification;
import com.shrcl.engineerprocess.domain.Engineer;
import com.shrcl.engineerprocess.domain.ProductItemCode;
import com.shrcl.engineerprocess.domain.impl.EngineerCapabilityImpl;
import com.shrcl.engineerprocess.domain.proxy.EngineerCapabilityProxy;
import com.shrct.businessprocess.product.RCBrand;
import edu.fudan.mylang.pf.EntityImplementation;
import edu.fudan.mylang.pf.IModelObject;

@EntityImplementation(implementBy = EngineerCapabilityImpl.class)
public interface EngineerCapability extends IModelObject {
  public abstract Engineer getEngineer();
  
  public abstract EngineerCapability setEngineer(final Engineer engineer);
  
  public abstract Certification getCertification();
  
  public abstract EngineerCapability setCertification(final Certification certification);
  
  public abstract RCBrand getProductBrand();
  
  public abstract EngineerCapability setProductBrand(final RCBrand productBrand);
  
  public abstract ProductItemCode getProductItem();
  
  public abstract EngineerCapability setProductItem(final ProductItemCode productItem);
  
  public abstract Integer getCurrentLevel();
  
  public abstract EngineerCapability setCurrentLevel(final Integer currentLevel);
  
  public abstract Integer getExpectedLevel();
  
  public abstract EngineerCapability setExpectedLevel(final Integer expectedLevel);
  
  public abstract EngineerCapabilityProxy toProxy();
}
